﻿using System;
using System.Collections.Generic;
using Volo.Abp.Auditing;
using Volo.Abp.Domain.Entities;

namespace Joy.Erp.BasicArchives.Core
{
    /// <summary>
    /// 单据聚合根类
    /// </summary>
    /// <typeparam name="TKey"></typeparam>
    public interface IDocumentAggregateRoot<TDocumentLine, TKey> : IEntity<TKey>, IArchiveAggregateRoot<TKey>, IFullAuditedObject
    {
        /// <summary>
        /// 业务日期
        /// </summary>
        DateTime BusinessDate { get; set; }

        /// <summary>
        /// 单据状态
        /// </summary>
        DocumentStatus DocumentStatus { get; set; }

        /// <summary>
        /// 单据行
        /// </summary>
        ICollection<TDocumentLine> Children { get; }
    }

    public interface IDocumentAggregateRoot<TDocumentLine> : IDocumentAggregateRoot<TDocumentLine, Guid>
    {

    }
}
